Wireless mesh networks have been employed to good advantage in various environments and often are used to collect and report usage (consumption) and/or generation information for various utilities including, for example, water, gas, and electricity usage. Such mesh networks may incorporate a number of devices (nodes) that operate based on firmware stored within the device (node). In some instances it is desirable from time to time to update such stored firmware for varying purposes including such as adding additional functionality for the node, correcting (patching) errors in existing firmware, or for other reasons.
Generally, firmware (software) updates are accomplished by broadcasting firmware packets to the nodes. Broadcast packets are not acknowledged and often the fact that such broadcasts are conducted in a noisy RF environment means that all packets will not be received by all nodes. Furthermore the broadcast efficiency depends on the environment and is not easy to predict. In addition the ever changing nature of interference levels and network traffic load will make the broadcast efficiency vary with time.
In previously known arrangements, following the broadcast of a number of packets corresponding to, for example, a new or replacement firmware image, the network head (management system) will interrogate the various network nodes to find out which packets are missing in each node. The missing packets are then retransmitted either through a broadcast mechanism or through individual point-to-point communications. As different nodes are usually missing different packets, this process may entail the retransmission of a very large number of packets, slowing down the whole process.
In some systems, redundant broadcasts including systematic repetition of each packet is employed to attempt to mitigate problems associated with broadcast update techniques. Such redundancy increases the probability of reception of the packets but slows down the whole process.
In view of these identified issues, it would be advantageous to provide a firmware (software) updating (downloading) arrangement that provides improved packet reception reliability and recovery.
While various implementations of firmware updating systems have been developed, and while various combinations of error correcting techniques have been developed, no design has emerged that generally encompasses all of the desired characteristics as hereafter presented in accordance with the subject technology.
Repeat use of reference characters throughout the present specification and appended drawings is intended to represent same or analogous features, elements, or steps.